package managers;

import conexionBD.ConexionServidor;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.io.Serializable;
import java.sql.PreparedStatement;
import java.util.ArrayList;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import javax.servlet.jsp.jstl.sql.Result;
import javax.servlet.jsp.jstl.sql.ResultSupport;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.jsf.FacesContextUtils;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 *
 * @author Juan Jose
 */
@ManagedBean
@SessionScoped
public class mannagerConsultarPerfil implements Serializable {

    private Integer perfilSeleccionado;
    List<SelectItem> perfiles = new ArrayList<SelectItem>();
    WebApplicationContext permisos = FacesContextUtils.getRequiredWebApplicationContext(FacesContext.getCurrentInstance());
    JdbcTemplate jdbcTemplate = (JdbcTemplate) permisos.getBean("jdbcTemplate");

    public List<SelectItem> getPerfiles() {
        obtenerNombrePerfil();
        ConexionServidor myConexion = new ConexionServidor();
        List<SelectItem> perfiles = new ArrayList<SelectItem>();
        perfiles.add(new SelectItem("0", "-seleccione uno-"));
        try {
            Connection con = myConexion.getConnection();
            Statement st = con.createStatement();
            ResultSet rs = st.executeQuery("SELECT IDPERFIL, NOMBREPERFIL FROM PERFIL WHERE NOMBREPERFIL != 'ADMINISTRADOR'");
            while (rs.next()) {
                perfiles.add(new SelectItem(rs.getInt("idperfil"), rs.getString("nombreperfil")));
            }
            rs.close();
            st.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }

        return perfiles;
    }

    public Integer getPerfilSeleccionado() {
        return perfilSeleccionado;
    }

    public void setPerfilSeleccionado(Integer perfilSeleccionado) {
        this.perfilSeleccionado = perfilSeleccionado;
    }

    public void setPerfiles(List<SelectItem> perfiles) {
        this.perfiles = perfiles;
    }

    public String cargarlista() {
        String destino = "irconsultarperfil";
        return destino;
    }

    public Result getListaTemporal() throws Exception {

        ConexionServidor miConexion = new ConexionServidor();
        Connection conn = miConexion.getConnection();
        PreparedStatement ps;
        try {
            String sql = "select nombreautoridad from perfil_autoridad where idperfil = ?";
            ps = conn.prepareStatement(sql);
            ps.setInt(1, this.perfilSeleccionado);
            ResultSet rs = ps.executeQuery();

            return ResultSupport.toResult(rs);
        } finally {
            conn.close();
        }

    }
    String nombreperfil;

    public String getNombreperfil() {
        return nombreperfil;
    }

    public void setNombreperfil(String nombreperfil) {
        this.nombreperfil = nombreperfil;
    }

    public void obtenerNombrePerfil() {
        ConexionServidor myConexion = new ConexionServidor();
        try {
            Connection con = myConexion.getConnection();
            PreparedStatement ps = con.prepareStatement("select nombreperfil from perfil where idperfil = ?");
            ps.setInt(1, this.perfilSeleccionado);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                nombreperfil = rs.getString("nombreperfil");
                System.out.println(nombreperfil);
            }
            rs.close();
            ps.close();
            con.close();
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }

    }
}
